package game.gui.panelinventaire;

import game.controler.EtatJeu;
import game.controler.Inventaire;
import java.awt.GridLayout;
import java.util.ArrayList;
import javax.swing.JPanel;

/**
 *
 * @author Gab'z
 */
public class PanelInventaireObjet extends JPanel {

    private static PanelInventaireObjet panelInventaireObjet = null;
    private static ArrayList<ElementPanelInventaire> listeElmtPanelInventaireObjets = null;

    private PanelInventaireObjet() {
        this.setLayout(new GridLayout(6, 3));
        this.setSize(270, 540);
        listeElmtPanelInventaireObjets = new ArrayList<ElementPanelInventaire>(0);
    }

    public static PanelInventaireObjet getPanelInventaireObjet() {
        if (panelInventaireObjet == null) {
            panelInventaireObjet = new PanelInventaireObjet();
        }
        return panelInventaireObjet;
    }

    private static void reloadElmtPanelInventaireObjets() {
        System.out.println("reload listeElmtPanelInventaireObjets");
        listeElmtPanelInventaireObjets.clear();
        ElementPanelInventaire elmtPanelInventaire;
        boolean selected;
        for (String idObjetInventaire : Inventaire.getInventaire().getObjetsList()) {
            selected = false;
            if (EtatJeu.getTypeSelectionne() != null && EtatJeu.getIdSelectionne() != null && EtatJeu.getTypeSelectionne() == ElementPanelInventaire.TYPE_OBJET && EtatJeu.getIdSelectionne().equals(idObjetInventaire)) {
                selected = true;
            }
            elmtPanelInventaire = new ElementPanelInventaire(idObjetInventaire, ElementPanelInventaire.TYPE_OBJET, selected);
            listeElmtPanelInventaireObjets.add(elmtPanelInventaire);
        }
    }

    public static void reloadPanelInventaireObjets() {
        System.out.println("reload PanelInventaireObjets");
        reloadElmtPanelInventaireObjets();
        panelInventaireObjet.removeAll();

        int ic = 0;
        for (ElementPanelInventaire elmtPanelInventaire : listeElmtPanelInventaireObjets) {
            panelInventaireObjet.add(elmtPanelInventaire);
            ic++;
            System.out.println("nbr d'objets dans l'inventaire " + panelInventaireObjet.getComponentCount());
        }
        ElementPanelInventaire elmtPanelInventaire;
        for (int i = ic; i < 18; i++) {
            elmtPanelInventaire = new ElementPanelInventaire(null, ElementPanelInventaire.TYPE_OBJET, false);
            panelInventaireObjet.add(elmtPanelInventaire);
            ic++;
        }
        panelInventaireObjet.validate();
    }
}